package com.bahadirakin.dynamodb;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;
import com.bahadirakin.dynamodb.dao.UserRepository;
import com.bahadirakin.dynamodb.dao.UserRepositoryImpl;
import com.bahadirakin.dynamodb.model.User;
import java.io.InputStream;
import java.util.List;
/**
* Application to test behavior.
*/
public final class App {
private App() {
}
/**
* Main method for application.
*/
//CHECKSTYLE.OFF: AbbreviationAsWordInName
public static void main(String[] args) throws Exception {
final InputStream properties = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("aws.properties");
final AWSCredentials propertiesCredentials = new PropertiesCredentials(properties);
final AmazonDynamoDB amazonDynamoDb = new AmazonDynamoDBClient(propertiesCredentials);
amazonDynamoDb.setRegion(Region.getRegion(Regions.US_WEST_2));
final DynamoDBMapper dynamoDBMapper = new DynamoDBMapper(amazonDynamoDb);
final UserRepository userRepository = new UserRepositoryImpl(dynamoDBMapper);
// Save
final User user = new User();
user.setUsername("bhdrkn");
user.setEmail("bhdrkn@gmail.com");
user.setPassword("1q2w3e");
userRepository.put(user);
// Read
final User readUser = userRepository.get("bhdrkn");
assert user.equals(readUser);
// Read All
final List<User> users = userRepository.findAll();
assert users.contains(user);
// Find by email
final List<User> findUsers = userRepository.findByEmail("bhdrkn@gmail.com");
assert findUsers.contains(user);
// Find by email
final List<User> notFound = userRepository.findByEmail("asdf");
assert notFound.isEmpty();
// Delete
userRepository.delete("bhdrkn");
final List<User> all = userRepository.findAll();
assert all.isEmpty();
System.out.println("Finished!");
}
}